#include <iostream>
using namespace std;
const int N=1e5+10;
int a[N];
int tr[N];
int ans[N];
int n;
int lowbit(int x)
{
    return x&-x;
}
void add(int x,int k)
{
    for(int i=x;i<=n;i+=lowbit(i))
    {
        tr[i]+=k;
    }
}
int ask(int x)
{
    int sum=0;
    for(int i=x;i>0;i-=lowbit(i))
    {
        sum+=tr[i];
    }
    return sum;
}
int main()
{
    scanf("%d",&n);
    add(1,1);
    for(int i=2;i<=n;i++)
    {
        scanf("%d",a+i);
        add(i,1);
    }
    for(int i=n;i>=1;i--)
    {
        int h=a[i]+1;
        int l=1,r=n;
        while(l<r)
        {
            int mid=l+r>>1;
            if(ask(mid)>=h) r=mid;
            else l=mid+1;
        }
        //cout<<l<<endl;
        ans[i]=l;
        add(l,-1);
    }
    for(int i=1;i<=n;i++)
    {
        printf("%d\n",ans[i]);
    }
    return 0;
}
